مترجم: حبیب الله علیخانی
منبع:راسخون




 

روند کلی

با توجه به پس زمینه شرح داده شده در بخش قبل، فرآیند آموزش یک شناساگر بسیار ساده می شود. این بخش، دستورالعمل فرآیند این آموزش را ارایه می دهد.

ایجاد توضیحات

اولین گام برای خلق توضیحات یک شناساگر و شرح چگونگی اطلاعات برای آموزش انتخاب خواهد شد. فایل‌های مورد نیاز برای ایجاد عبارتند از:

فایل corpora

یک فایل corpora.txt ایجاد کنید اگر یکی هنوز ایجاد نشده است. این فایل شامل یک لیست اصلی از هر نوشته و محل و فرمت فایل‌ها در نوشته است. فرمت این فایل در لینک http://www.cslu.ogi.edu/tutordemos/nnet_training/tutorial.html#corpora_file داده شده است. راه اتوماتیکی برای تولید این فایل وجود ندارد اما اصلاح آن به صورت دستی آسان است. همچنین corpora فایلی می‌تواند برای همه وظایف آموزش استفاده شود.

فایل‌هایinfo

فایل‌های info را برای آموزش، توسعه و آزمایش ایجاد کنید. این فایل‌های info بایستی به صورت دستی ایجاد شوند. فرمت آن‌ها در زیر آمده است. یک فایل info شامل همه اطلاعاتی است که برای پیدا کردن مثال‌های آموزش، توسعه و آزمایش مورد نیاز است. این فایل info شامل اطلاعات پارتیشن (آموزش-توسعه و آزمون)، چگونگی انتخاب داده برای پارتیشن مورد نیاز(به عنوان مثال پارامتر های فیلتر کردن که در بالا شرح داده شد)، نام پایه شناساگر، کمترین تعداد مثال‌های مورد نیاز برای هر دسته، و اطلاعات وابسته به نوشته است. یک فایل info برای هر وظایف آموزش،‌ آموزش دوباره با استفاده از همتراز اجباری، توسعه و آزمایش مورد نیاز است.

فایل grammer

ایجاد یک فایل گرامر که گرامر را مشخص می‌کند برای شناسایی کلمات استفاده خواهد شد. فرمت فایل گرامر یک اصلاحی از ABNF format published توسط w3C است. فرمت دقیق استفاده شده در اینجا در Statenet documentation شرح داده شده است.

فایل lexicon

ایجاد یک فایل ”lexicon” که تلفظ هر کلمه در گرامر را مشخص می کند. فرمت این فایل در لینک زیر آورده شده است. http://www.cslu.ogi.edu/tutordemos/nnet_training/tutorial.html#lexicon_file

فایل parts

ایجاد یک فایل parts که مشخص می‌کند چه تعداد قسمت‌هایی به هر آوا تقسیم شود و چه زمینه کلاستری استفاده شود. این فایل نیز باید به صورت دستی ایجاد شود و فرمت آن در لینک زیر آورده شده است:
http://www.cslu.ogi.edu/tutordemos/nnet_training/tutorial.html#5._File_Formats

یافتن داده

با توجه به فایل‌های ایجاد شده در بالا، اسکریپت استفاده شده به منظور پیدا کردن فایل‌های داده برای آموزش عبارتند از:
find_files.tcl
برای پیدا کردن فایل‌ها برای آموزش، توسعه و آزمایش از find_files.tcl استفاده می‌کنیم. این اسکرسپت بایستی برای هر مجموعه‌ای از اطلاعات فراخوانده شود. در این گام هر فیلتر اعمال شده و نوشته برای فایل‌هایی که برای پارتیشن داده شده مناسب است جستجو شده است.
gen_spec.tcl
از اسکریپت gen_spec.tcl برای تولید یک فایل خاص که شامل یک لیستی از دسته های مورد نیاز برای آموزش است استفاده می کنیم. این اسکریپت از فایل‌های اطلاعات، گرامر، لغت و اقسام برای ایجاد فایل spec استفاده می کند. فایل مشخصات ،‌علاوه بر دسته های استفاده شده توسط شناساگر برای آموزش و شناسایی ،‌اندازه فریم خاص، نرخ نمونه، محل کد استفاده شده برای پردازش ویژگی‌های آکوستیک، کلاستر های زمینه و نقشه ای از آواها را در بر می گیرد.
gen_catfiles.tcl
برای ایجاد دسته های هم تراز زمانی از رونوشت متنی یا از رونوشت های هم تراز آوایی از اسکریپت gen_catfiles.tcl استفاده می شود. این دسته ها برای جدایش فایل‌ها با توسعه ”cat.” که در زیر داریرکتوری هایی که ساختار دایرکتوری استفاده شده در نوشته‌ها را منعکس می کنند،‌ نوشته می شوند.
revise_spec.tcl
اول برای ارتباط دسته هایی که مثال‌های کافی ندارند به دسته هایی که مثال‌های مناسبی دارند و دوم برای به روز رسانی پارامتر های بیشینه و کمینه مدت زمان در هر دسته از اسکریپت revise_spec.tcl استفاده می‌شود.
اسکریپت gen_catfiles.tcl فایل‌های خروجی را که شماره مثال‌های در دسترس برای هر دسته را نشان می‌دهند به خوبی اطلاعات مدت زمان ایجاد می کنند. خروجی این اسکریپت یک فایل spec اصلاح شده است.

انتخاب داده برای آموزش

هنگامی که یک فایل انتخاب می شود، فایل دسته ایجاد شده است و فایل desc درست است،‌ سپس می‌توان از اسکریپت های زیر و برنامه‌ها برای انتخاب فریم ها برای آموزش استفاده کرد:
pick_example.tcl
از این اسکریپت برای انتخاب مثال‌های آموزش استفاده می شود. خروجی این ااسکریپت یک فایل مثال است که مستقیماً توسط اسکریپت بعدی gen_examples.tcl استفاده می شود.
gen_examples.tcl
از این اسکریپت برای ایجاد بردار های ویژگی و اطلاعات دسته‌ای اختصاص داده شده به آن‌ها برای هر فریم که باید آموزش داده شود مورد استفاده قرار می گیرد. این اسکریپت یک فایل دودویی با بسط ”vec.” تولید می کند.(برای بردارهای ویژگی ها)
checkvec.exe
برای اطمینان از اینکه اطلاعات فایل vec. با‌ارزش باشند از checkvec استفاده می شود. این برنامه تعدادی از دسته ها و تعدادی مثال از هر دسته را چاپ می کند. تعداد دسته ها در زمان اجرای nntrain.exe مورد نیاز است.

آموزش و ارزیابی

nntrain.exe
برای آموزش تکرار های شبکه عصبی با استفاده از فایل بردار به عنوان داده‌های آموزش از nntrain استفاده می شود.
select_best.tcl
برای پیدا کردن بهترین تکرار از شبکه با استفاده از مجموعه فایل‌های توسعه از اسکریپت select_best.tcl استفاده می شود.

آموزش دوباره

ایجاد داده‌های همتراز اجباری با استفاده از بهترین تکرار شبکه که بایستی آموزش داده شود. برای انجام این، یک فایل info برای هم تراز اجباری ایجاد شده که یک دایرکتوری جدید مشخص می‌کند که برای گذاشتن فایل‌های دسته و اسکریپت همتراز اجباری برای ایجاد و استفاده از فایل‌های cat. جدید است. سپس از اسکریپت های find_files.tcl", "gen_spec.tcl" gen_catfiles.tcl و "revise_spec.tcl" برای تولید برچسب‌های هم تراز اجباری و خلق یک فایل spec. جدید استفاده می شود. سپس بخش 3.3 و 3.4 برای ایجاد یک شبکه آموزش بر روی داده‌های همتراز اجباری تکرار می شود.

ارزیابی مجموعه آزمون

از اسکریپت select_best.tcl برای ارزیابی بهترین عمل‌کرد شبکه بر روی داده‌های آزمون استفاده می شود. این‌ها نتایج نهایی هستند که برای چاپ قابل قبول می باشند.
مثال
برای نمایش روند توضیح داده شده در بالا،‌مثالی از آموزش یک شناساگر گفتار متناوب ارقام در این بخش آورده شده است. همه فرمان‌ها بایستی در پنجره فرمان DOS وارد شود. ابتدا مطمئن شوید محیط به درستی تنظیم شده باشد(شرح داده شده در بخش ۱-۱) متن های پررنگ فرمان‌هایی را که در پنجره فرمان تایپ می‌شوند را نشان می دهد. متن های با فونت fixed-width خروجی این فرمان را نشان میدهد. در DOS همه فرمان‌ها بایستی در یک خط وارد شوند. اگر یک بک اسلش در مثال‌های زیر برای ادامه فرمان در خط بعدی استفاده شده است ،‌این بایستی در DOS در یک خط بدون بک اسلش تایپ شود. پارامتر های هر اسکریپت و برنامه در بخش ۶ تشریح شده است. فایل‌های داده که در این مثال استفاده شده است در یک فایل فشرده قابل دسترس برای دانلود آورده شده است. (اطمینان حاصل کنید که ساختار دایرکتوری فایل‌ها را در یک فایل فشرده حفظ کنید). فایل‌های پیکربندی (و دو اسکریپت fa.tcl و remap_tutorial.tcl) در این آموزش در فایل ZIP گذاشته شده اند. شما ممکن است نیاز به تغییر مقداری از اطلاعات در این فایل‌ها برای انعکاس ساختار دایرکتوری تان یا اطلاعات دیگر داشته باشید. تغییراتی که مورد نیاز است به عنوان آموزش پیشرفت باید روشن شود. بخش ۵ قالب این فایل‌هایی که شما می‌توانید آن‌ها را به منظور آموزش وظیفه دیگر یا آموزش با استفاده از پارامتر های متفاوت دیگر تغییر دهید یا ایجاد کنید را شرح می دهد.
اگر شما با نسخه قبلی این فرآیند آموزش آشنایی دارید، توجه داشته باشید که چندین تفاوت وجود دارد. فایل vocab. توسط دو فایل جانشین شده است که یکی lexicon. و دیگری grammer. است. قالب فایل lexicon. شبیه آن است اما به منظور سازگاری بیشتر با سبک ABNF اندکی با قالب فایل vocab. تفاوت دارد. فایل‌های olddesc. و desc. با یک قالب جدید که یک فایل (specification)spec. نامیده می‌شود جانشین شده است. استفاده از hscript.exe نیاز نیست. تفاوت‌های اساسی دیگری نیز وجود دارد اما این تفاوت‌های دیگر ممکن است قابل توجه نباشد. اگر شما به صورت موفقیت آمیز از نسخه قبلی استفاده کرده اید. اما مشکلاتی با نسخه جدید دارید لطفاً دستورالعمل را به دقت بخوانید ممکن است تغییرات ظریفی در روش وجود داشته باشد.
[گام ۱]
در این گام اولیه،‌ ساختار دایرکتوری را که استفاده خواهید کرد نصب کنید. پیشنهاد می‌شود که برای هر پروژه یک دایرکتوری ایجاد کنید که یک پروژه شامل همه فایل‌هایی است که در طول آموزش یک شبکه ایجاد می‌شوند. برای مثال، ما از یک دایرکتوری پروژه که \tutorial\digit نامیده می‌شود استفاده خواهیم کرد. توجه داشته باشید بعضی فایل‌ها (مخصوصاً فایل‌های بردار) ممکن است حجم زیادی بگیرند. شما ممکن است بخواهید این فایل‌ها را پس از استفاده از آن‌ها حذف کنید. اکنون زمان خوبی برای اطمینان از مسیر شما که در برگیرنده محل اسکریپت های آموزش است و همچنین برنامه‌های C مستقل استفاده شده برای آموزش می‌باشد. برای بررسی این موضوع اگر در دایرکتوری پروژه تایپ شود gen_spec.tcl بایستی خروجی های زیر چاپ شود:

gen_spec.tcl
Usage: gen_spec.tcl